{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 导入库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting MNIST-data/train-images-idx3-ubyte.gz\n",
      "Extracting MNIST-data/train-labels-idx1-ubyte.gz\n",
      "Extracting MNIST-data/t10k-images-idx3-ubyte.gz\n",
      "Extracting MNIST-data/t10k-labels-idx1-ubyte.gz\n"
     ]
    }
   ],
   "source": [
    "# coding:UTF-8\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "data = input_data.read_data_sets(\"MNIST-data\", \\\n",
    "                                 one_hot=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练数据共：55000\n",
      "测试数据共：10000\n",
      "第一个测试图的维度：(784,)\n",
      "第一个测试图的真实值：[ 0.  0.  0.  0.  0.  0.  0.  1.  0.  0.]\n"
     ]
    }
   ],
   "source": [
    "print \"训练数据共：\"+str(len(data.train.images))\n",
    "print \"测试数据共：\"+str(len(data.test.images))\n",
    "print \"第一个测试图的维度：\"+str(data.test.images[0].shape)\n",
    "print \"第一个测试图的真实值：\"+str(data.test.labels[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_images(images, cls_true, cls_pred=None):\n",
    "    assert len(images) == len(cls_true) == 9\n",
    "    \n",
    "    # Create figure with 3x3 sub-plots.\n",
    "    fig, axes = plt.subplots(3, 3)\n",
    "    fig.subplots_adjust(hspace=0.3, wspace=0.3)\n",
    "\n",
    "    for i, ax in enumerate(axes.flat):\n",
    "        # Plot image.\n",
    "        ax.imshow(images[i].reshape((28,28)), cmap='binary')\n",
    "\n",
    "        # Show true and predicted classes.\n",
    "        if cls_pred is None:\n",
    "            xlabel = \"label: {0}\".format(cls_true[i])\n",
    "        else:\n",
    "            xlabel = \"True: {0}, Pred: {1}\".format(cls_true[i], cls_pred[i])\n",
    "\n",
    "        ax.set_xlabel(xlabel)\n",
    "        \n",
    "        # Remove ticks from the plot.\n",
    "        ax.set_xticks([])\n",
    "        ax.set_yticks([])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUMAAAD5CAYAAAC9FVegAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHq5JREFUeJzt3XmUFNXd//H3F8QgoiyBKCIwT0QRJKIyPgajiBsBRBCC\nihLgGKMRDG4RjQRxJ4IbPxE3PKi/gEFFQCQCKihCgACyyK4ooMQFBzy4I8t9/pi5Xd0zPcz0THdV\nT/t5ncOZmqrqqtt96Tvfuqs55xAR+amrFnUCRESygQpDERFUGIqIACoMRUQAFYYiIoAKQxERQIWh\niAigwlBEBFBhKCICwAGpnNygQQOXl5eXoaRkn82bN1NQUGBRpyNMyuPcpzxOLqXCMC8vj6VLl1Y8\nVVVMfn5+1EkInfI49ymPk9NjsogIKgxFRAAVhiIigApDERFAhaGICJBia7JIRd1///0AfP/99wC8\n++67AEyaNKnEuQMGDACgXbt2APTt2zeMJMpPnCJDEREUGUqGXXzxxQC8+OKLSY+blewL+/jjjwPw\nxhtvAHDGGWcA0LRp00wkUSL03nvvAdCiRQsAHn74YQAGDRoUeloUGYqIoMhQMsBHg1B6RHjssccC\n0KlTJwA+/PDD2LFp06YBsHHjRgDGjx8PwJAhQ9KfWInU8uXLAahWrTAua9y4cWRpUWQoIoIiQ0kj\nP951ypQpJY61bt0aCKK+Bg0aAFC7dm0Afvzxx9i5p5xyCgArV64EYPv27RlKsURtxYoVQPD/oGfP\nnpGlRZGhiAghRIa+H9nYsWMBOOKII2LHatasCUCfPn0AOPzwwwFo3rx5ppMlGfDpp58C4JyL7fMR\n4axZswBo1KhR0tf6fogA69atSzjWtWvXtKZTordq1SoARo8eDUC/fv2iTA6gyFBEBAghMhw8eDBQ\nOMFiaXy/skMPPRSAVq1apeXeTZo0AeCmm24Cfppz14Xp/PPPB4JWYIBDDjkEgPr16+/3tc8//3xs\nO77+UHLThg0bAPj222+BxB4IUVFkKCKCCkMRESCEx+SnnnoKCLpJxD8Cr127Fgg6Xr711lsALFq0\nCAiGX3300UelXr9GjRpA0FXDV+LHX8c/LusxORzNmjUr97n33XcfEAzLiue72PifkjtGjhwJFC5B\nANnx3VRkKCJCCJHh2WefnfAznh+K5X355ZdAECn6vxZLliwp9fo/+9nPgGCgtx/mBbBjxw4Ajjrq\nqAqlXTJn+vTpAAwbNgyAXbt2xY4ddthhANx7770A1KpVK+TUSSbEN6L677T/3h588MFRJCmBIkMR\nEbJsOF69evUAOOussxL2J4sqi3vppZeAILoEOP744wHo3bt3upIoaeKH7sVHhJ7vZuGn7pLcMHfu\n3BL7GjZsGEFKklNkKCJClkWGFbFt2zYABg4cCCQOBfP1UWV1+JXwXHDBBUAwPM/r379/bPvuu+8O\nNU0SDr/UQzw/ICIbKDIUESEHIsMxY8YAQYRYt27d2DHfUiXR8/0/FyxYAAR1hb7OaOjQobFz/XRO\nkhsWLlwIwNNPPx3bd+KJJwJw7rnnRpKmZBQZiohQhSPD+fPnA0FfNO/ll1+ObfvpoyR6ftLOgoKC\nhP1++jb1Bc1ds2fPBhJ7evg+xn4av2ygyFBEBBWGIiJAFX5MfvXVV4Fg7rtzzjkHgHbt2kWWJinJ\nr3nih1h6HTp0AODOO+8MO0kSMj9JS7wLL7wwgpTsnyJDERGqYGT4/fffAzBz5kwgmKjhjjvuAIIp\nvSQ68avZDR8+HCg5e/UJJ5wAqBtNLvvss88AmDdvHpA4iUqPHj0iSdP+KDIUEaEKRoZ+MlBfB9W5\nc2cATj311MjSJIkeeOCB2PbixYsTjvnheKorzH3PPPMMAJ9//jkQfFezlSJDERGqSGToJwIFuOuu\nuwCoU6cOALfeemskaZLSPfjgg6Ue88MnVVeY+7Zs2ZLwu5+iL1spMhQRIcsjQ98qec0118T27dmz\nB4AuXboA6ldY1fg8LU+rv4/+/bm7d+8GYOfOnSXO9UO9HnrooaTXql69emx7xIgRgJYTyLRXXnkl\n4feuXbtGlJLyUWQoIoIKQxERIEsfk/fu3QsEM1ts2rQpdqx58+ZA0JAiVYtfl6Y8LrroIgAaNWoE\nBF00Jk6cWKk0+NX34udQlPTxnax9flUVigxFRMjSyPCDDz4AghXU4vluG5r/Lnv5xi2AqVOnVvg6\nL7zwQpnn+MaVatUS/65369YNCNbejnfaaadVOE1StilTpgBBY6ef1TrbVztUZCgiQpZFhr6TZseO\nHRP233///bHtbG+eF5g8eXJse+TIkUDJiRq8tWvXAvuvB7z88ssBaNasWYljv/vd7wBo2bJlxRIr\nafPdd98BMGPGjIT9frqu+O5N2UiRoYgIWRYZPvHEE0DJYTzxdQ1mFmqapHLKuy7uc889l+GUSKb5\n+lu/QmX37t0BuPbaayNLUyoUGYqIkCWRoe+X9Mgjj0ScEhGpKB8Z+nWSqxpFhiIiZElk6NdA/vrr\nrxP2+9Emmu5JRDJNkaGICCoMRUSALHlMLs6vnDZ79mwA6tevH2VyROQnQJGhiAhZEhnecsstCT9F\nRMKmyFBEBDDnXPlPNvsC2FLmibmjmXOuYdSJCJPyOPcpj5NLqTAUEclVekwWEUGFoYgIkOHC0My+\nKeN4npmtTvGaz5hZrzLOGWxmK4r+rTazvWamzooZEGEe9zGzd81slZktMLM2qdxDyi/CPD7WzBaa\n2S4zuzGV61dEVnStSTfn3H3AfQBmdj5wvXNuR7SpkjTbBJzhnPvSzDoDTwKnRJwmSa8dwDXABWHc\nLJTHZDOrbWazzWxZ0V/y7nGHDzCzCWa2zswmmVmtote0NbO5ZvaOmc0ys0YVvP0lwD8r/SZkv8LO\nY+fcAufcl0W/LgKOTOPbkSQiyONtzrklwO50v5dkwqoz/AHo4Zw7CTgTeMCCKatbAI8651oCXwED\nzawGMBro5ZxrC4wD7il+UTO708y6lXbTogzpBLyU1ncjyUSSx0UuB2aUcY5UXpR5nHFhPSYbMNzM\n2gP7gMbAYUXHPnbO/btoezyFYfFMoDXwetFnXR34tPhFnXPDyrjv+cC/9Ygcikjy2MzOpLAw1Pqf\nmRfV9zgUYRWGfYCGQFvn3G4z2wzULDpWvKOjo/BDX+Oca1fJ+/ZGj8hhCT2Pzex44Cmgs3Nue0Wv\nI+UW1fc4FGE9JtcBthV9gGcC8Ws+NjUz/2FdCswHNgAN/X4zq2Fmx6VyQzOrA5wBvFzp1Et5hJrH\nZtYUmAz0dc69l5Z3IGUJ/XscprAKwwlAvpmtAvoB6+OObQCuNrN1QD3gMefcj0AvYISZrQRWAKcW\nv2gZdQ09gNecc9+m8X1I6cLO42HAz4FHi7pQLU3v25EkQs1jMzvczLYCNwBDzWyrmR2a9nfl76fh\neCIiGoEiIgKoMBQRAVQYiogAKgxFRAAVhiIiQIqdrhs0aODy8vIylJTss3nzZgoKCqzsM3OH8jj3\nKY+TS6kwzMvLY+nSn053rvz8/KiTEDrlce5THienx2QREVQYiogAKgxFRAAVhiIigApDERFAhaGI\nCJClC0J9+23hrFuDBw8G4PHHH48d883kL774IgDNmjVDRKSyFBmKiJClkeEnn3wCwNixYwGoXr16\n7JjvLPrKK68A8Oc//znk1ElFLFu2DICePXsChaMCKuq1116Lbbds2RKAJk2aVDxxEhn/Pe7WrXBu\n19GjRwMwYMCA2Dnx3/9MUmQoIkKWRYZffPEFAP379484JZJus2bNAmDXrl2Vvta0adNi2+PGjQNg\n4sSJlb6uhGf79sL1u+IjQIBBgwYBcPnll8f2HXTQQaGkSZGhiAhZEhk+/PDDAEydOhWAJUuWlPma\nefPmAeDXcGnTpg0A7du3z0QSpYL27NkDwKuvvpq2a8YPvH/wwQeBoAfCwQcfnLb7SOa8/fbbAPz3\nv/9N2H/JJZcAULNmzRKvyTRFhiIiZElkeN111wGptRpNnjw54WfTpk0BeOGFF2LntG3bNl1JlAp6\n8803AViwYAEAN998c6WvuWPHjtj2mjVrAPjuu+8ARYbZLL6++O677056Tt++fQEwC3+KSUWGIiKo\nMBQRASJ+TO7SpQsQNILs3bu3zNc0aNAACB6HtmzZAsCmTZsAOPnkk2Pn7tu3L32JlXJbtWpVbLt3\n794ANG/eHIAhQ4ZU+vrxXWuk6nj33Xdj274TvnfAAYVFUefOnUNNUzxFhiIiRBAZzp07N7a9fv16\nIKgsLa0B5aqrroptd+zYEYA6deoAMGfOHADuueeeEq977LHHgJIdOyWz4vPCN2yMHz8egNq1a1f4\nur7hJP7/UBQV7VIxvrEzmXPPPTfElCSnyFBEhBAjQz8w39chARQUFCQ913eT6dWrFwC33XZb7Fit\nWrUSzvVTeD3xxBMlrnnTTTcB8MMPPwDBpA41atSo2JuQ/Zo0aRKQ2MHa1xXG1+VWlO+OER8NdujQ\nAYC6detW+vqSWfERvXfggQcCMHz48LCTU4IiQxERQowMd+/eDZQeDUIwlO75558Hgpbj/fGRoW+l\nvOGGG2LH/BAtHyH6aYKOOuqolNIu5eMn3PWfO6SnvtY/VTz33HNA0PIIMHToUEDRfjbzHe4XLlxY\n4ph/0jvhhBNCTVMyigxFRMiS4Xi+Punpp58GyhcRFuejvgkTJsT2LV68OA2pk7Ls3LkTgEWLFpU4\nNnDgwEpf/8knnwSCKd5atWoVO3bWWWdV+vqSWfubeCWbenooMhQRIYLIMNkok//85z+Vvq4fxRI/\n6qT4yBbfKu37vEl6+AH4W7duBYJpmNLlgw8+SPi9devWab2+ZFayyNC3/qfjySFdFBmKiKDCUEQE\nCPEx2a99nKmVrvwqW8uXL4/tKz7M74477sjIvX/qDjnkECDoHhE/UYMfQle/fv2Ur7tt2zYg6LLj\n/eY3v6lQOiVc8+fPB4IuUfH8cNojjzwy1DTtjyJDERFCjAynT5+e1uv5bhZr164F9j+cx3fVUcfc\nzPCrl/mhd35YHsB5550HJHaGT2b16tWxbd9g4qdnKz4ZQ7Vq+hteFfgV8HxDZrxsmJihOP2vEhEh\nSzpdV4SfJmrMmDGlnpOXlwfAs88+CwQTQEhm3H777UBiJOCfCOIn6EimYcOGsW0fCZY2dPOyyy6r\nTDIlJMXreuMn07jyyivDTk6ZFBmKiFAFI0O/VICfGHZ//LCt008/PaNpkkItW7YEElco9K37xTtO\nF+ena4vXv39/oGQneV9HKdnJd74v3ooc33Kcjind0k2RoYgIIUaG+1v0acaMGQm/X3HFFQB88skn\npV6nPNO9p7sFW1J34oknJvxMxS9/+cuk++P7Mf7qV7+qWMIkY/yUXcVbkbt37x5FcspNkaGICCoM\nRUSAEB+T/bxlftbpeL5jbvGhesmG7vnH7PKspCdVm3/MKv64pUfj7OY7W3t+0MN1110XRXLKTZGh\niAghRoY9e/YEYOTIkbF9+1sPpSz+r43vzjF27FgAGjVqVOFrSnbxjWRaG7lqmTVrVsLvTZo0AYLJ\nGbKVIkMREUKMDP0qdn7lO4CpU6cCMGrUqJSv97e//Q0I1kKW3OPXu/bU2Tq7+RUwN27cmLC/Zs2a\nQPZPlKLIUESECIbj+bWR47c7duwIBKug+Ylazz//fAD+9Kc/xV7jWxbjV0iT3ORXS/QD/IcNGxZl\ncqQMfmo1P9RuzZo1ABx99NGRpSkVigxFRMiSiRo6deqU8FMEggjj+uuvB7RGcrbzfX/99Hq+F8BJ\nJ50UWZpSochQRIQsiQxFkvF1x1K1HHHEEQCMGzcu4pSkRpGhiAgqDEVEABWGIiKACkMREUCFoYgI\noMJQRAQAS7bafaknm30BbMlccrJOM+dcw7JPyx3K49ynPE4upcJQRCRX6TFZRAQVhiIigApDEREg\nw4WhmX1TxvE8M1ud4jWfMbNeZZxjZvawmW00s3fNrGpMm1EFRZXHceeebGZ7ynu+pC7C7/GxZrbQ\nzHaZ2Y2pXL8icnWihs7A0UX/TgEeK/opOcTMqgMjgNeiTotkxA7gGuCCMG4WymOymdU2s9lmtszM\nVplZ97jDB5jZBDNbZ2aTzKxW0WvamtlcM3vHzGaZWSrL3nUH/r8rtAiom+LrJUUR5DHAIOAlYFu6\n3oeULuw8ds5tc84tAXan+70kE1ad4Q9AD+fcScCZwAMWrP/YAnjUOdcS+AoYaGY1gNFAL+dcW2Ac\ncE/xi5rZnWbWLcn9GgMfx/2+tWifZE6oeWxmjYEeFEb9Eo6wv8ehCusx2YDhZtYe2EdhwXRY0bGP\nnXP/LtoeT2FYPBNoDbxe9FlXBz4tflHnnBbFyB5h5/Eo4Gbn3D6tqxyanP4eh1UY9gEaAm2dc7vN\nbDNQs+hY8V7fjsIPfY1zrl0F7/dfoEnc70cW7ZPMCTuP84GJRV+yBkAXM9vjnJtawetJ2cLO41CF\n9ZhcB9hW9AGeCTSLO9bUzPyHdSkwH9gANPT7zayGmR2Xwv2mAf2KWpV/Dex0zpX4iyRpFWoeO+f+\nxzmX55zLAyYBA1UQZlzY3+NQhVUYTgDyzWwV0A9YH3dsA3C1ma0D6gGPOed+BHoBI8xsJbACOLX4\nRfdT1/Aq8CGwERgLDEznm5Gkws5jCV+oeWxmh5vZVuAGYKiZbTWzQ9P+rvz9NDZZREQjUEREABWG\nIiKACkMREUCFoYgIkGI/wwYNGri8vLwMJSX7bN68mYKCgp9Uj17lce5THieXUmGYl5fH0qVLK56q\nKiY/Pz/qJIROeZz7lMfJ6TFZRAQVhiIigApDERFAhaGICKDCUEQEUGEoIgKoMBQRAXJ3QSgRqUK+\n/PJLAD766KNSz2nWrHD6xIceegiA1q1bA3DMMccA0KZNm0qlQZGhiAgRR4bbthUuanbRRRcBcOqp\nhfM+XnnllUBhT/l02LlzJwBvv/02AJ06dQKgRo0aabm+iKRm+vTpALzyyisAvPXWWwC8//77pb6m\nRYsWQOHwOoBdu3YlHN+3b1+l0qTIUESECCJDXzcAcNxxhcsh+MjtsMMKF9pKd0R40kknAVBQUAAQ\nG5d59NFHp+U+Un5fffUVAH/9618BWLNmDQBvvPFG7BxF7Lnhgw8+AGDMmDEAPPnkk7Fj33//PQCp\nzLS/YcOGNKauJEWGIiKEGBn6qMzXDwJs374dgKuvvhqA0aNHp/Wed999NwCbNm0Cgr9MigjDN378\neACGDh0KlGw19BEjwM9//vPwEiYZs3XrVgBGjRpVqesce+yxQNB6nCmKDEVECDEyXLZsGRC0GsUb\nNmxY2u6zevXq2Pb9998PQI8ePQC4+OKL03YfKR8fHVx//fVA8IRQtPh7zKBBg2LbjzzyCAD169cP\nI4lSAT4fIYj8TjvtNCDorXHggQcCUKdOHQBq164de80333wDwG9/+1sgiPpOOeUUAE488cTYuQcd\ndBAABx98cJrfRSJFhiIiqDAUEQFCeEz2HatfeumlEsfGjRsHQMOGDSt9H/94fO6555Y41rNnTwAO\nOeSQSt9HUuOrKnxjWWkmTpwY254xYwYQNLb4R2j/2CXR+fbbb4HE79nKlSsBmDp1asK57dq1A2D5\n8uVAYpc534B25JFHAlCtWvRxWfQpEBHJAhmPDP/yl78AQdcK3wEa4MILL0zbfebPnw/AZ599Ftt3\n2WWXAfD73/8+bfeRsm3ZsiW2/fTTTycc84PpfQf7119/vcTrfWd5H1X26dMHgMMPPzz9iZVy+fHH\nHwG49NJLgSAaBBgyZAgA55xzTtLXJhtE0bRp0zSnsPIUGYqIEEJk6LtQ+J+NGzeOHatMHZAfzjN8\n+HAgGPIT32XD10lKuFasWBHb9p2p27dvD8DcuXMB+OGHHwB47rnnAPj73/8ee83GjRuBIMrv3r07\nENQlqstNeHwXGP898xMrxNfzDx48GIBatWqFnLr0UmQoIkIEEzX4qXsAOnbsCEDdunUBGDBgQJmv\n9522/c9FixYlHE9nPaRUTPzUSj5S952uvZo1awLwhz/8AYBJkybFjvkB/n4Qv4841JocPt9CfO+9\n9wLBBKvz5s2LneM7VVd1igxFRAghMrz22msBmDNnDgCffPJJ7JivP/IRwMsvv1zm9fy5xYdzHXXU\nUUBQtyHR+ec//1li37/+9S8ALrjggqSv8dOqJfPrX/8aSBzOJeFYsGBBwu9+mJzvH5hLFBmKiBBC\nZNi2bVsAVq1aBSS2NM6cOROAkSNHAvCLX/wCgP79+5d6vb59+wJw/PHHJ+z3Swb4CFGic8kll8S2\nfbS/ZMkSANavXw8E/x+mTJkCJE766+uQ/T4/9ZrP+1atWmUs7ZIovi4Xghb9O+64I7avW7duQOLk\nClWRIkMREVQYiogAYKmsQZCfn+/2V9Edhg8//BAIHodPOOEEAF577TUgPZM+ePn5+SxdutTKPjN3\npCOPd+zYEdv2+eSH2JXWABY/8N93oO/atSsA7733HhCsmvj4449XKn3xlMf7V3zQRDLVq1cH4Kqr\nrgKCOQk//vhjAJo3bw4Eax7F82vg+EkdMtEwU948VmQoIkLE6yZXxJ133gkEf6l840s6I0KpnPjh\nci+++CIAvXr1AkpGiNdccw0AI0aMiL3Gd8j2U6/5oXqzZs0Cgk7ZoAazTLvxxhsBeOCBB0o9Z+/e\nvUAQ0fufqfCNpx06dAASp3QLiyJDERGqSGToowuAZ599FoBDDz0U0Epq2c5P6+S7aPiJGXz3GR/p\n+2gw3q233grAunXrgKCbjn8NBP8fJDP8MDy/qqWfTm337t2xc/w6Nz5CrAg/CbT/rsevhOcn+c00\nRYYiIlSRyNB39Ix33nnnAYmTxUr28hFiaROAJuNXRfOrGvrI8M0334yd41uuNa1XZviW4pNPPhkI\nWvbjzZ49Gwiixdtvvx2AxYsXp3w/X5f8zjvvpPzaylJkKCJCFYwM/dqpvpVLcp+vr5o2bRqQ2NLo\n11hO59rbkpqzzz474Xc/5NZHhjVq1ACCZTgArrjiCgAeeughIKhLjpIiQxERVBiKiABZ/pjsh13F\nr3jnV1VTw8lPh19T96abbgIS1+f1lfW9e/cG4Jhjjgk3cVKCn8Her5rnG1b87EMA77//PhDMWF9c\n/FpJYVFkKCJCFYkM4weJd+nSJeGcr7/+GgjmvsvG9VglPfykHHfddVdsn29Iu+WWW4BgfW7fLUfC\n17JlSyDoEvX888+XOCe+exTAAQcUFkW+y1z88MywKDIUESHLI8Nk/F8QHwH4pnk/fEfDs3Jfv379\nYttPPPEEAJMnTwaCuqjiM6FLeHxUPmrUKCB4eovvSP35558DkJeXBwR56uuAo6DIUESEKhgZjh07\nFoCnnnoKgD/+8Y9AMKhfcl/8dG1vvPEGEKzn6ycWyIZOvD91vueHXyv9H//4R+zYwoULgSAS9FN4\nRUmRoYgIWR4Zjh49GoDbbrsttq99+/YADBgwAIB69eoBcOCBB4acOskGvveAXzbAD9lbu3YtoJX0\nsolf3bD4drZQZCgiQpZHhqeffjoAc+bMiTglku385LFt2rQBYOPGjYAiQyk/RYYiIqgwFBEBsvwx\nWaS8/Jo4mzZtijglUlUpMhQRQYWhiAigwlBEBADzq1GV62SzL4AtmUtO1mnmnGtY9mm5Q3mc+5TH\nyaVUGIqI5Co9JouIoMJQRATIcGFoZt+UcTzPzFaneM1nzKxXOc892cz2lPd8SV1UeWxm9cxsipm9\na2aLzax1KveQ8oswjzuY2U4zW1H0L6OLY+dsp2szqw6MAF6LOi2SEUOAFc65HmZ2LDAGOLuM10jV\nM8851zWMG4XymGxmtc1stpktM7NVZtY97vABZjbBzNaZ2SQzq1X0mrZmNtfM3jGzWWbWKMXbDgJe\nAral631I6SLI41bAHADn3Hogz8wOS987kuIi+h6HJqw6wx+AHs65k4AzgQcsWPKuBfCoc64l8BUw\n0MxqAKOBXs65tsA44J7iFzWzO82sW5L9jYEewGMZeTeSTKh5DKwEehad879AM+DINL8nSRR2HgO0\nM7OVZjbDzI5L9xuKF9ZjsgHDzaw9sA9oDPi/4h875/5dtD0euAaYCbQGXi/6rKsDnxa/qHOutDqE\nUcDNzrl98cuMSkaFncf3Av/PzFYAq4DlwN70vBUpRdh5vIzCPoLfmFkXYCpwdJreSwlhFYZ9gIZA\nW+fcbjPbDNQsOla8o6Oj8ENf45xrV8H75QMTizKgAdDFzPY456ZW8HpStlDz2Dn3FXAZQFF0sgn4\nsCLXknKLIo/99qtm9qiZNXDOFVTkemUJ6zG5DrCt6AM8k8JHGq+pmfkP61JgPrABaOj3m1mNVEJk\n59z/OOfynHN5wCRgoArCjAs1j82srpn5tR7+CLwd/+WRjAg7jw/3j+FFVSHVgO1peB9JhVUYTgDy\nzWwV0A9YH3dsA3C1ma0D6gGPOed+BHoBI8xsJbACOLX4Rcuoa5BwhZ3HLYHVZrYB6Axcm9Z3I8mE\nnce9KMzjlcDDQG+XwSFzGo4nIoJGoIiIACoMRUQAFYYiIoAKQxERQIWhiAigwlBEBFBhKCICqDAU\nEQHg/wDFEXwpmLudbQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11bcbcb50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Get the first images from the test-set.\n",
    "images = data.test.images[0:9]\n",
    "\n",
    "# Get the true classes for those images.\n",
    "cls_true = np.argmax(data.test.labels[0:9],1)\n",
    "\n",
    "# Plot the images and labels using our helper-function above.\n",
    "plot_images(images=images, cls_true=cls_true)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "input_x = tf.placeholder(dtype=tf.float32,shape=[None,28*28])\n",
    "weights = tf.Variable(tf.zeros([28*28,10]))\n",
    "biases = tf.Variable(tf.zeros([10]))\n",
    "\n",
    "logits = tf.matmul(input_x,weights)+biases\n",
    "y_pred = tf.nn.softmax(logits=logits)\n",
    "y_pred_cls = tf.arg_max(y_pred,1)\n",
    "\n",
    "y_true = tf.placeholder(dtype=tf.float32,shape=[None,10])\n",
    "y_true_cls = tf.placeholder(dtype=tf.int64,shape=[None])\n",
    "\n",
    "cross_entropy = tf.nn.softmax_cross_entropy_with_logits(labels=y_true,logits=logits)\n",
    "cost = tf.reduce_mean(cross_entropy)\n",
    "\n",
    "optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.5).minimize(cost)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "session = tf.Session()\n",
    "session.run(tf.global_variables_initializer())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "batch_size = 100\n",
    "def optimize(num):\n",
    "    for i in range(num):\n",
    "        input_x_batch,y_true_batch = data.train.next_batch(batch_size)\n",
    "        feed_dict_batch = {\n",
    "            input_x:input_x_batch,\n",
    "            y_true:y_true_batch\n",
    "        }\n",
    "        session.run(optimizer,feed_dict=feed_dict_batch)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "whether_equals = tf.equal(y_pred_cls,y_true_cls)\n",
    "\n",
    "accuracy_formula = tf.reduce_mean(tf.cast(whether_equals,dtype=tf.float32))\n",
    "def print_accuracy():\n",
    "    feed_dic_test ={\n",
    "        input_x:data.test.images,\n",
    "        y_true:data.test.labels,\n",
    "        y_true_cls:np.argmax(data.test.labels,1)\n",
    "    }\n",
    "    accuracy= session.run(accuracy_formula,feed_dict=feed_dic_test)\n",
    "    print \"准确率：{:0.1%}\".format(accuracy)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率：9.8%\n"
     ]
    }
   ],
   "source": [
    "print_accuracy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_weights():\n",
    "    # Get the values for the weights from the TensorFlow variable.\n",
    "    w = session.run(weights)\n",
    "    \n",
    "    # Get the lowest and highest values for the weights.\n",
    "    # This is used to correct the colour intensity across\n",
    "    # the images so they can be compared with each other.\n",
    "    w_min = np.min(w)\n",
    "    w_max = np.max(w)\n",
    "\n",
    "    # Create figure with 3x4 sub-plots,\n",
    "    # where the last 2 sub-plots are unused.\n",
    "    fig, axes = plt.subplots(3, 4)\n",
    "    fig.subplots_adjust(hspace=0.3, wspace=0.3)\n",
    "\n",
    "    for i, ax in enumerate(axes.flat):\n",
    "        # Only use the weights for the first 10 sub-plots.\n",
    "        if i<10:\n",
    "            # Get the weights for the i'th digit and reshape it.\n",
    "            # Note that w.shape == (img_size_flat, 10)\n",
    "            image = w[:, i].reshape((28,28))\n",
    "\n",
    "            # Set the label for the sub-plot.\n",
    "            ax.set_xlabel(\"Weights: {0}\".format(i))\n",
    "\n",
    "            # Plot the image.\n",
    "            ax.imshow(image, vmin=w_min, vmax=w_max, cmap='seismic')\n",
    "\n",
    "        # Remove ticks from each sub-plot.\n",
    "        ax.set_xticks([])\n",
    "        ax.set_yticks([])\n",
    "        \n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAD5CAYAAAAZf+9zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEGtJREFUeJzt3X2MZXV9x/H3Z1mXBJcW4rLWBXVTot1CqQgGyyJmW1No\n1aYVfIyxf1hokNqE+pC2MTESbLUF4sMfCnYD2hiMBWwESl1sooXurk+LwKy49aGBwFLqLtSFLanU\n9ds/zpnkuuzuzNw7d35zZ96v5ObOuQ+/3zmfmfnMuefcmUlVIUlaeCtar4AkLVcWsCQ1YgFLUiMW\nsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMr5/LgZFXBMeNal0XoKaqezkLOaMbjtfzyBdi3t6pO\nWKjZzHj25lTAXajnznWOCXZXgznNeLyWW74Atz24sPOZ8Wx5CEKSGrGAJakRC1iSGrGAJakRC1iS\nGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGA\nJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakR\nC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iS\nGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGAJakRC1iSGrGA\nJakRC1iSGrGAJakRC1iSGklVzf7ByR7gwfGtzqLzwqo6YSEnNOPxWob5ghkvhKEynlMBS5Lmj4cg\nJKkRC1iSGhm6gJN8JMllA8tbkmweWL46ybtmGGPbLOZ5IMmaQ9y+KcnGua73wPPPTDKV5AdJPp4k\nw441Lksg479K8lCS/cOOMW6TnHGSY5L8U5JdSb6T5MPDjDNuk5xx//wvJbm3z/iaJEcNO9bBRtkD\n3gpsBEiyAlgDnDpw/0bgiKFV1dChAJum5x/SJ4GLgRf1l98ZYaxxmfSMbwXOGuH5C2HSM76qqjYA\nLwXOSfK7I4w1LpOe8Rur6iXArwEnAG8YYayfV1VDXYB1wEP9x6cBnwHuAI4HjgZ+DKzq738v8E3g\nPuDygTH299crgE8Au4AvA7cDr+/vewC4HLgbmAI2AOuBR4HdwD3AuX0oO4F7gTtnWPfnAbsGlt8C\n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\nhm8FLkyyIslz6Q6az+RJ4NjphSQnV9XXq+r9wB7g+Yd7YlV9sqrWVdV6up+o31uk5QsTmnGSldNn\npJM8q9+GRfluEyY04/6l8K0D87wKuH8Wc7YwkRkPeAvzvPcLoxfwFN0Zza8ddNu+qtoLUFV3ADcA\n2/tjLzcxEEbvZuBhui+ez9K9/Ng3w9y3Aq/r3xpyLnBlkql0bynbBtybZF2S20fawvYmNeOjgS1J\n7qM7+bEb+LvZbvQCm9SMAf4c+ECf89vo9ioXo0nOGOCNjKGAF83fgkiyuqr2J3kO8A3gnP4Yj+aJ\nGY+fGY/fUsp41GPA8+m2/ozkKuCKSQ10kTPj8TPj8VsyGS+aPWBJWm78WxCS1IgFLEmNzOkYcLKq\n4Jhxrcsi9BRVT2chZzTj+bVmzZpav379uIafSDt27Nhb8/gfMsz4mWab8RxPwh1D9wtNy8VdDeY0\n4/m0fv16vvWtb411jkmTZF7/XZAZP9NsM/YQhCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1\nYgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFL\nUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMW\nsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1\nYgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFLUiMWsCQ1YgFL\nUiMWsCQ1kqqa/YOTPcCD41udReeFVXXCQk5oxvNrGeY5G/OauRkf0qwynlMBS5Lmj4cgJKkRC1iS\nGhm6gJN8JMllA8tbkmweWL46ybtmGGPbLOZ5IMmaQ9y+KcnGua73wPPfkmQqyX1JvnSoOVpbAhm/\nqc/3O0n+ZthxpKVqlD3grcBGgCQrgDXAqQP3bwSO+M1fVUN/cwObpuefqyQrgY8Bv1lVvw7cB7xz\nhHUZl0nO+DnAlcCrqupU4JeSvGqEdZGWnFEKeBtwdv/xqcBO4Mkkxyc5GvhV4G6AJO9N8s1+b+jy\n6QGS7O+vVyT5RJJdSb6c5PYkrx+Y60+T3N3vsW5Ish64BPizJPckOTfJG5LsTHJvkjtnWPf0l2cn\nCfALwCMjZDEuk5zxLwPfr6o9/fK/ABeOlIa0xKwc9olV9UiSnyZ5Ad1e0nbgRLrC2AdMVdXTSc4D\nXgScRVd6tyR5ZVUNfgNfAKwHTgHWAt8Frhu4f29VnZHkUuA9VXVRkmuA/VV1FUCSKeD8qtqd5Lj+\ntnXA5qp69UHr/n9J3gFMAf8DfB/4k2GzGJdJzhj4AfArfZE/DPwBsGpegpGWiFFPwm2jK4bpctg+\nsLy1f8x5/eXbdHtrG+jKYtArgBur6mdV9SjwlYPu/0J/vYOuRA5lK/DpJBcDR0FXYIcoBpI8C3gH\n8FJgHd0hiL+ceXObmMiMq+q/6TL+PHAX8ABwYMatlZaRofeAe9PHKE+je3n8EPBu4Ang+v4xAT5U\nVdeOMM9P+usDHGadq+qSJC8HXgPsSHJmVT12mPFO75/zQ4Ak/wD8xQjrN06TmjFVdStwK0CSP8YC\nln7OfOwBvxZ4vKoOVNXjwHF0L5GnTw5tAd6eZDVAkhOTrD1onK3Ahf1xyufSnfyZyZPAsdMLSU6u\nqq9X1fuBPcDzj/Dc3cApSaZ/U+W36V6SL0aTmjHT65DkeOBSYPORHi8tN6MW8BTdmfmvHXTbvqra\nC1BVdwA3ANv7Y4g3MfBN3buZ7jjh/cBn6V5G75th7luB102fIAKu7E8g7aQrpnuTrEty+8FPrKpH\ngMuBO5PcR7dH/Ndz2O6FNJEZ9z6W5H668v9wVX1vdpssLQ+L5leRk6yuqv3925e+AZzTH6vUPDFj\naXEZ9RjwfLqtP7O+CrjCYhgLM5YWkUWzByxJy41/C0KSGrGAJakRC1iSGrGAJakRC1iSGrGAJamR\n/weiDMFhSvCzJAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11bcdff50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_weights()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]\n"
     ]
    }
   ],
   "source": [
    "print session.run(biases)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率：27.5%\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e49ead0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "optimize(1)\n",
    "print_accuracy()\n",
    "plot_weights()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n",
    "def plot_example_errors():\n",
    "    data.test.cls = data.test.cls = np.array([label.argmax() for label in data.test.labels])\n",
    "    # Use TensorFlow to get a list of boolean values\n",
    "    # whether each test-image has been correctly classified,\n",
    "    # and a list for the predicted class of each image.\n",
    "    feed_dict_test = {input_x: data.test.images,\n",
    "                  y_true: data.test.labels,\n",
    "                  y_true_cls: data.test.cls}\n",
    "    correct, cls_pred = session.run([whether_equals, y_pred_cls],\n",
    "                                    feed_dict=feed_dict_test)\n",
    "\n",
    "    # Negate the boolean array.\n",
    "    incorrect = (correct == False)\n",
    "    \n",
    "    # Get the images from the test-set that have been\n",
    "    # incorrectly classified.\n",
    "    images = data.test.images[incorrect]\n",
    "    \n",
    "    # Get the predicted classes for those images.\n",
    "    cls_pred = cls_pred[incorrect]\n",
    "\n",
    "    # Get the true classes for those images.\n",
    "    cls_true = data.test.cls[incorrect]\n",
    "    \n",
    "    # Plot the first 9 images.\n",
    "    plot_images(images=images[0:9],\n",
    "                cls_true=cls_true[0:9],\n",
    "                cls_pred=cls_pred[0:9])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c290890>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_example_errors()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率：77.1%\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nB7BhGEZG/H8ZrWqTextJ1gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11ea05110>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "optimize(9)\n",
    "print_accuracy()\n",
    "plot_weights()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nkebzzz8PwFdffZXzfhhOWSzhwU/ozB4amXfZZZeiXmdFt/HGG+f83VAhYllvvfUKTpMUV6gdfvjh\nh8t9tuFvyY57AAAKrUlEQVSGG+Z9nh9++AGAG2+8EYgHNAStWrVqaBKLTpGmiEgKZY80ly1blt0O\nEzIEAwcOBHLbxIph8uTJAMyePTvn/KuvvnpRryPpvf/++wCMGTMm+15oB5WmJU3b4/Dhw4F4wEl1\ngwcPLkqaikGRpohICmWPNE877bTs9ptvvpnzWameZt9yyy0lOa8U7oYbbgCgffv22fcuu+yyciVH\n6lH9KXcaF154YXY7WbNICrW/o48+usHXKTZFmiIiKZQt0rz//vuBmodfheFyG220UVGvGZ7KJyeQ\nkMoQ+nTeeuutQG4bltqaK1eY6i+NEJ0mlzT5+eefa9x3p512AqBLly4NSF1pKNIUEUmh0SPNMILg\n4osvBpbvkwkwadIkoPh9s9577z0gfmoeHHPMMUW9jqR30UUXAfFkxGEiD6lsYVKOsAgixPf4Bx98\nAMT9dBctWgTAcccdB8R9M+tSiZO0KNIUEUlBhaaISAqNXj0Pw6NmzJix3GehM/vmm2/eqGnq1KlT\no15PYmGN+7AK5amnngqoet5UHH/88QC88MIL2fduv/12IO4yuMceewBx3n777bf1nrdFi0w8N2DA\ngOIltkgUaYqIpNBokWZYEyasVBckh1pdc801AKy00koAuDtQ9y/TyiuvDMSTbwRhkg8zq/XYENmu\nv/769f8DpCROOukkAD755BMgXv+8UOE787e//Q2Ae+65B4i7NG255ZZFuY5k/PGPf8xuh4e7oTvh\n3XffnbNvmCDnwAMPzL5355135uyz7bbbAtC/f//iJ7ZAijRFRFJotEgzTJIRVpILkmtZX3rppTmf\nhY6z1113Xa3n3XrrrQGYNWtWzvvjx48HYP/998++l1zRDuJO03VFo1Ia4fsQ8im0f3Xr1i31uZLd\n1sKED+eccw4A7777LgAnnHACABtssEEDUyx16dev33LbYR2oMJAl5G1YXfShhx7KHlM90tx+++1L\nl9gCKdIUEUmh0SLN5DrWScnJS0ObZhpharmuXbsCcSfbI444AoBevXpl9/38889zjg1P/qTxhJrF\nBRdcAMC6664LxPmVjzDk8oorrgDg+uuvz34WnsaH84bIs2/fvgWkWhoiDBqpbfBIaF+uSYcOHUqS\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c29edd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_example_errors()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率：91.4%\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c624650>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "optimize(540)\n",
    "print_accuracy()\n",
    "plot_weights()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11ea6a610>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_example_errors()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def print_confusion_matrix():\n",
    "    num_classes=10\n",
    "    # Get the true classifications for the test-set.\n",
    "    data.test.cls = data.test.cls = np.array([label.argmax() for label in data.test.labels])\n",
    "    cls_true = data.test.cls\n",
    "    feed_dict_test = {input_x: data.test.images,\n",
    "                  y_true: data.test.labels,\n",
    "                  y_true_cls: data.test.cls}\n",
    "    \n",
    "    # Get the predicted classifications for the test-set.\n",
    "    cls_pred = session.run(y_pred_cls, feed_dict=feed_dict_test)\n",
    "\n",
    "    # Get the confusion matrix using sklearn.\n",
    "    cm = confusion_matrix(y_true=cls_true,\n",
    "                          y_pred=cls_pred)\n",
    "\n",
    "    # Print the confusion matrix as text.\n",
    "    print(cm)\n",
    "\n",
    "    # Plot the confusion matrix as an image.\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=plt.cm.Blues)\n",
    "\n",
    "    # Make various adjustments to the plot.\n",
    "    plt.tight_layout()\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(num_classes)\n",
    "    plt.xticks(tick_marks, range(num_classes))\n",
    "    plt.yticks(tick_marks, range(num_classes))\n",
    "    plt.xlabel('Predicted')\n",
    "    plt.ylabel('True')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 967    0    0    2    0    4    5    1    1    0]\n",
      " [   0 1105    2    6    1    3    4    1   13    0]\n",
      " [  14    7  909   15   12    3   14   13   37    8]\n",
      " [   4    0   22  927    0   27    2   11    7   10]\n",
      " [   2    1    2    1  910    0   16    2    5   43]\n",
      " [  11    3    1   36    9  782   15    6   19   10]\n",
      " [  19    3    3    2   10   18  901    1    1    0]\n",
      " [   5    8   20    9    7    1    0  944    1   33]\n",
      " [  13    8   12   43    9   42   17   16  794   20]\n",
      " [  14    5    3   13   36    9    0   27    2  900]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11e91f510>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print_confusion_matrix()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
